let arr = [1, 2, 3] // 定义一个arr数组

// arr.reduce((p, v) => {
//   return p.then(() => {
//     return new Promise((resolve) => {
//       setTimeout(() => {
//         console.log(v);
//         resolve()
//       }, 1000);
//     })
//   })
// }, Promise.resolve())
// 不适用reduce
let p = Promise.resolve()
for (let i = 0; i < arr.length; i++) {
  p = p.then(() => {
    return new Promise((resolve) => {
      setTimeout(() => {
        console.log(arr[i]);
        resolve()
      }, 1000);
    })
  })
}